import Vue from 'vue'
import App from './App.vue'
import router from './router'
import './plugins/element.js'

// 导入全局样式表
import './assets/css/global.css'

// 导入字体图标
import './assets/fonts/iconfont.css'

// 导入面包屑导航组件
import BreadCrumb from '@/components/common/BreadCrumb'
// 注册面包屑导航组件
Vue.component('bread-crumb',BreadCrumb)

// 导入分页组件
import Pagination from '@/components/common/Pagination'
// 注册分页组件
Vue.component('pagination',Pagination)

// 导入页面加载进度条组件
import Nprogress from 'nprogress'
import 'nprogress/nprogress.css'

// 导入时间组件
import dayjs from "dayjs"
Vue.prototype.dayjs = dayjs; //可以全局使用dayjs

import axios from 'axios'
// 配置请求的根路径
// axios.defaults.baseURL = 'http://10.22.34.148:8012'   // prod 发布模式
axios.defaults.baseURL = 'http://localhost:8080'   // dev 开发模式
axios.defaults.timeout =  6000;
axios.interceptors.request.use(config => {
  Nprogress.start() // 展示进度条
  config.headers.token = window.sessionStorage.getItem('token')
  // 请求拦截器
  return config
})
axios.interceptors.response.use(config => {
  Nprogress.done() // 隐藏进度条
  return config
})
Vue.prototype.$http = axios

// 在Vue.mixin里面定义的方法和属性在其他组件中可以直接使用
Vue.mixin({
  computed: {
      // 页面高度
      pageHeight(){
        return `${document.documentElement.clientHeight}`-250
      },
      // 文件上传请求路径
      uploadUrl() {
          return axios.defaults.baseURL + '/os/upload'
      }
  },
  methods: {
      // 携带token的请求头的方法
      getAuthHeaders() {
          return {
              token: sessionStorage.token
          }
      }
    }
})

Vue.config.productionTip = false

new Vue({
  router,
  render: h => h(App)
}).$mount('#app')
